package Facade;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import daos.AlunoDao;
import daos.DesempenhoDao;
import daos.TurmaDao;
import daos.UsuarioDao;

import entidades.Aluno;
import entidades.Desempenho;
import entidades.Turma;
import entidades.Usuario;

import java.util.List;

public interface AcademicoFacade<T>{
	
	T salvar(T objeto);

	void Excluir(T objeto);
	
	T atualizar(T objeto);
	
	List<T> buscarTodos(Class<T> objeto);
	
	T buscarPorId(Class<T> objeto, Long id);
}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
//	static EntityManagerFactory factory = Persistence.createEntityManagerFactory("academicoDatabase");
//
//	public static void salvarUsuario(Usuario usuario) {
//
//		EntityManager manager = factory.createEntityManager();
//		UsuarioDao usuariodao = new UsuarioDao(manager);
//		usuariodao.salvar(usuario);
//		manager.getTransaction().begin();
//		manager.getTransaction().commit();
//		manager.close();
//
//	}
//
//	public static void matricularAluno(Long idAluno, Long idTurma) {
//
//		EntityManager manager = factory.createEntityManager();
//
//		AlunoDao alunoDao = new AlunoDao(manager);
//		Aluno aluno = alunoDao.buscarPorId(idAluno);
//
//		TurmaDao turmaDao = new TurmaDao(manager);
//		Turma turma = turmaDao.buscarPorId(idTurma);
//
//		Desempenho desempenho = new Desempenho();
//		desempenho.setAluno(aluno);
//		desempenho.setTurma(turma);
//
//		DesempenhoDao desempenhoDao = new DesempenhoDao(manager);
//		desempenhoDao.salvar(desempenho);
//
//		manager.getTransaction().begin();
//		manager.getTransaction().commit();
//		manager.close();
//
//	}

